package co.edu.javeriana.konigsberg.xavier.dto;

import java.io.Serializable;
import java.math.BigInteger;
import java.util.Date;
import java.util.List;

public class ProgramaDTO implements Serializable {
	private static final long serialVersionUID = 1L;
	
	public static final String ESTADO_POSPONER= "Posponer";

	public static final String ESTADO_CANCELADO_POR_EMPRESA = "Cancelado por la Empresa";

	public static final String ESTADO_NO_PERTINENTE = "No Pertinente";

	public static final String ESTADO_MERCADEO = "Aprobado";

	public static final String ESTADO_ESTUDIO_MERCADO = "Estudio Mercado";

	public static final String ESTADO_EJECUCION = "Ejecucion";

	public static final String ESTADO_RECHAZADO = "Rechazada";

	public static final String ESTADO_CANCELADA = "Cancelada";

	public static final String ESTADO_PARA_APROBACION = "Para Aprobacion";

	public static final String ESTADO_PROPUESTA_FINANCIERA = "Propuesta Financiera";

	public static final String ESTADO_PROPUESTA_TECNICA = "Propuesta Tecnica";

	public static final String ESTADO_OPORTUNIDAD = "Oportunidad";
	
	private BigInteger idPrograma;

	private String nombrePrograma;
	
	private CategoriaDTO categoriaDTO;
	
	private List<DepartamentoFacultadDTO> departamentosFacultadDTO;

	private CiudadDTO ciudadDTO;

	private DepartamentoDTO departamentoDTO;

	private ModalidadDTO modalidadDTO;

	private TipoProgramaDTO tipoProgramaDTO;
	
	private PaisDTO paisDTO;
	
	private EmpresaDTO empresaDTO;

	private Date fechaLimitePropuesta;
	
	private boolean firmaRepresentanteLegal;
	
	private boolean firmaExterna;
	
	private String nombreConvenio;
	
	private String estado;

	private List<PropuestaArchivoDTO> propuestasTecnicasDTOs;
	private List<PropuestaArchivoDTO> propuestasFinancierasDTOs;
	private List<PropuestaArchivoDTO> propuestasDTOs;
	
	private List<SesionDTO> listaSesiones;
	
	private List<CampanaDTO> listaCampanas;
	
	private BigInteger version;
	
	private BigInteger cohorte;
	
	private Double valorPropuesta;
	private Double puntoEquilibrio;
	
	private Date fechaEstadoActual;
	
	private List<ObservacionDTO> listaObservaciones;
	
	private String nombrePersonaExterna;
	private String cargoOcupaPersonaExterna;
	private String nombreEmpresaPersonaExterna;
	
	//private PropuestaTecnicaDTO propuestaTecnicaDTO;
	
	private String urlTecnicaRepositorio;
	
	private String urlFinancieraRepositorio;
	
	private boolean conLogo;
	
	private String urlLogo;
	
	private BigInteger numeroHorasPrograma;
	
	private BigInteger idFacultadLider;
	
	private boolean cronogramaPublicado;
	
	private boolean regionalizacion;
	
	private BigInteger minimoParticipantes;
	
	private BigInteger maximoParticipantes;

	private boolean adjudicado;
	
	public ProgramaDTO() {
	}
	
	public BigInteger getIdPrograma() {
		return this.idPrograma;
	}

	public void setIdPrograma(BigInteger idPrograma) {
		this.idPrograma = idPrograma;
	}

	public String getNombrePrograma() {
		return this.nombrePrograma;
	}

	public void setNombrePrograma(String nombrePrograma) {
		this.nombrePrograma = nombrePrograma;
	}

	public CiudadDTO getCiudadDTO() {
		return ciudadDTO;
	}

	public void setCiudadDTO(CiudadDTO ciudadDTO) {
		this.ciudadDTO = ciudadDTO;
	}

	public DepartamentoDTO getDepartamentoDTO() {
		return departamentoDTO;
	}

	public void setDepartamentoDTO(DepartamentoDTO departamentoDTO) {
		this.departamentoDTO = departamentoDTO;
	}

	public ModalidadDTO getModalidadDTO() {
		return modalidadDTO;
	}

	public void setModalidadDTO(ModalidadDTO modalidadDTO) {
		this.modalidadDTO = modalidadDTO;
	}

	public TipoProgramaDTO getTipoProgramaDTO() {
		return tipoProgramaDTO;
	}

	public void setTipoProgramaDTO(TipoProgramaDTO tipoProgramaDTO) {
		this.tipoProgramaDTO = tipoProgramaDTO;
	}

	public PaisDTO getPaisDTO() {
		return paisDTO;
	}

	public void setPaisDTO(PaisDTO paisDTO) {
		this.paisDTO = paisDTO;
	}

	public String getEstado() {
		return estado;
	}

	public void setEstado(String estado) {
		this.estado = estado;
	}

	public List<DepartamentoFacultadDTO> getDepartamentosFacultadDTO() {
		return departamentosFacultadDTO;
	}

	public void setDepartamentosFacultadDTO(
			List<DepartamentoFacultadDTO> departamentosFacultadDTO) {
		this.departamentosFacultadDTO = departamentosFacultadDTO;
	}

	public CategoriaDTO getCategoriaDTO() {
		return categoriaDTO;
	}

	public void setCategoriaDTO(CategoriaDTO categoriaDTO) {
		this.categoriaDTO = categoriaDTO;
	}
	
	public List<PropuestaArchivoDTO> getPropuestasTecnicasDTOs() {
		return propuestasTecnicasDTOs;
	}

	public void setPropuestasTecnicasDTOs(List<PropuestaArchivoDTO> propuestasTecnicasDTOs) {
		this.propuestasTecnicasDTOs = propuestasTecnicasDTOs;
	}

	public int getPropuestaTecnicaSize(){
		return propuestasTecnicasDTOs != null ? propuestasTecnicasDTOs.size() : 0;
	}
	
	public List<PropuestaArchivoDTO> getPropuestasFinancierasDTOs() {
		return propuestasFinancierasDTOs;
	}

	public void setPropuestasFinancierasDTOs(
			List<PropuestaArchivoDTO> propuestasFinancierasDTOs) {
		this.propuestasFinancierasDTOs = propuestasFinancierasDTOs;
	}
	
	public int getPropuestaFinancieraSize(){
		return propuestasFinancierasDTOs != null ? propuestasFinancierasDTOs.size() : 0;
	}
	
	public List<PropuestaArchivoDTO> getPropuestasDTOs() {
		return propuestasDTOs;
	}

	public void setPropuestasDTOs(List<PropuestaArchivoDTO> propuestasDTOs) {
		this.propuestasDTOs = propuestasDTOs;
	}

	public List<SesionDTO> getListaSesiones() {
		return listaSesiones;
	}

	public void setListaSesiones(List<SesionDTO> listaSesiones) {
		this.listaSesiones = listaSesiones;
	}

	public List<CampanaDTO> getListaCampanas() {
		return listaCampanas;
	}

	public void setListaCampanas(List<CampanaDTO> listaCampanas) {
		this.listaCampanas = listaCampanas;
	}

	public BigInteger getVersion() {
		return version;
	}

	public void setVersion(BigInteger version) {
		this.version = version;
	}

	public Double getValorPropuesta() {
		return valorPropuesta;
	}

	public void setValorPropuesta(Double valorPropuesta) {
		this.valorPropuesta = valorPropuesta;
	}

	public Double getPuntoEquilibrio() {
		return puntoEquilibrio;
	}

	public void setPuntoEquilibrio(Double puntoEquilibrio) {
		this.puntoEquilibrio = puntoEquilibrio;
	}

	public Date getFechaEstadoActual() {
		return fechaEstadoActual;
	}

	public void setFechaEstadoActual(Date fechaEstadoActual) {
		this.fechaEstadoActual = fechaEstadoActual;
	}

	public Date getFechaLimitePropuesta() {
		return fechaLimitePropuesta;
	}

	public void setFechaLimitePropuesta(Date fechaLimitePropuesta) {
		this.fechaLimitePropuesta = fechaLimitePropuesta;
	}

	public boolean getFirmaRepresentanteLegal() {
		return firmaRepresentanteLegal;
	}

	public void setFirmaRepresentanteLegal(boolean firmaRepresentanteLegal) {
		this.firmaRepresentanteLegal = firmaRepresentanteLegal;
	}

	public String getNombreConvenio() {
		return nombreConvenio;
	}

	public void setNombreConvenio(String nombreConvenio) {
		this.nombreConvenio = nombreConvenio;
	}

	public EmpresaDTO getEmpresaDTO() {
		return empresaDTO;
	}

	public void setEmpresaDTO(EmpresaDTO empresaDTO) {
		this.empresaDTO = empresaDTO;
	}

	public BigInteger getCohorte() {
		return cohorte;
	}

	public void setCohorte(BigInteger cohorte) {
		this.cohorte = cohorte;
	}

	public boolean isFirmaExterna() {
		return firmaExterna;
	}

	public void setFirmaExterna(boolean firmaExterna) {
		this.firmaExterna = firmaExterna;
	}

	public String getNombrePersonaExterna() {
		return nombrePersonaExterna;
	}

	public void setNombrePersonaExterna(String nombrePersonaExterna) {
		this.nombrePersonaExterna = nombrePersonaExterna;
	}

	public String getCargoOcupaPersonaExterna() {
		return cargoOcupaPersonaExterna;
	}

	public void setCargoOcupaPersonaExterna(String cargoOcupaPersonaExterna) {
		this.cargoOcupaPersonaExterna = cargoOcupaPersonaExterna;
	}

	public String getNombreEmpresaPersonaExterna() {
		return nombreEmpresaPersonaExterna;
	}

	public void setNombreEmpresaPersonaExterna(String nombreEmpresaPersonaExterna) {
		this.nombreEmpresaPersonaExterna = nombreEmpresaPersonaExterna;
	}

	public List<ObservacionDTO> getListaObservaciones() {
		return listaObservaciones;
	}

	public void setListaObservaciones(List<ObservacionDTO> listaObservaciones) {
		this.listaObservaciones = listaObservaciones;
	}

//	public PropuestaTecnicaDTO getPropuestaTecnicaDTO() {
//		return propuestaTecnicaDTO;
//	}
//
//	public void setPropuestaTecnicaDTO(PropuestaTecnicaDTO propuestaTecnicaDTO) {
//		this.propuestaTecnicaDTO = propuestaTecnicaDTO;
//	}

	public String getUrlTecnicaRepositorio() {
		return urlTecnicaRepositorio;
	}

	public void setUrlTecnicaRepositorio(String urlTecnicaRepositorio) {
		this.urlTecnicaRepositorio = urlTecnicaRepositorio;
	}

	public BigInteger getNumeroHorasPrograma() {
		return numeroHorasPrograma;
	}

	public void setNumeroHorasPrograma(BigInteger numeroHorasPrograma) {
		this.numeroHorasPrograma = numeroHorasPrograma;
	}

	public boolean isConLogo() {
		return conLogo;
	}

	public void setConLogo(boolean conLogo) {
		this.conLogo = conLogo;
	}

	public String getUrlLogo() {
		return urlLogo;
	}

	public void setUrlLogo(String urlLogo) {
		this.urlLogo = urlLogo;
	}

	public String getUrlFinancieraRepositorio() {
		return urlFinancieraRepositorio;
	}

	public void setUrlFinancieraRepositorio(String urlFinancieraRepositorio) {
		this.urlFinancieraRepositorio = urlFinancieraRepositorio;
	}

	public BigInteger getIdFacultadLider() {
		return idFacultadLider;
	}

	public void setIdFacultadLider(BigInteger idFacultadLider) {
		this.idFacultadLider = idFacultadLider;
	}

	public boolean isCronogramaPublicado() {
		return cronogramaPublicado;
	}

	public void setCronogramaPublicado(boolean cronogramaPublicado) {
		this.cronogramaPublicado = cronogramaPublicado;
	}

	public boolean isRegionalizacion() {
		return regionalizacion;
	}

	public void setRegionalizacion(boolean regionalizacion) {
		this.regionalizacion = regionalizacion;
	}

	public BigInteger getMinimoParticipantes() {
		return minimoParticipantes;
	}

	public void setMinimoParticipantes(BigInteger minimoParticipantes) {
		this.minimoParticipantes = minimoParticipantes;
	}

	public BigInteger getMaximoParticipantes() {
		return maximoParticipantes;
	}

	public void setMaximoParticipantes(BigInteger maximoParticipantes) {
		this.maximoParticipantes = maximoParticipantes;
	}

	public boolean isAdjudicado() {
		return adjudicado;
	}

	public void setAdjudicado(boolean adjudicado) {
		this.adjudicado = adjudicado;
	}
}